package cn.edu.tju.core.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {

   @Bean
   public CorsFilter corsFilter() {
      UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
      CorsConfiguration config = new CorsConfiguration();
      
      // 允许携带认证信息（cookies、HTTP认证等）
      config.setAllowCredentials(true);
      
      // 指定允许的前端域名，而不是使用通配符*
      config.addAllowedOrigin("http://localhost:8081");
      // 如果有多环境，可以添加多个域名
      // config.addAllowedOrigin("https://your-production-domain.com");
      
      // 允许所有请求头
      config.addAllowedHeader("*");
      
      // 允许所有HTTP方法
      config.addAllowedMethod("*");
      
      // 设置预检请求的缓存时间（单位：秒）
      config.setMaxAge(3600L);
      
      // 对所有接口路径应用CORS配置
      source.registerCorsConfiguration("/**", config);
      return new CorsFilter(source);
   }
}
